Exemplary embodiments relate to solid state devices, and more specifically, to a data placement, garbage collection and wear leveling scheme for solid state storage devices.
Solid-state drive (SSD) devices, for example NAND flash memories, are capable of providing 10-100 times performance improvement compared with traditional hard disk drives (HDDs). In a typical organization, NAND flash memory is organized in terms of blocks, and each block typically includes 64 data pages, 4 KB each. Reads and writes are processed in terms of pages. A data page has to be erased before data can be written on it.
Because of the special characteristics of flash memory, one of the issues facing solid state drive design is write amplification. Flash memory must be erased before it can be re-used for writes, and the erase operation is on a block basis while the write is operating on a much smaller data page level. Before a block can be erased, all valid data pages on that block must be relocated to other locations, which leads to write amplification. The effect of write amplification can be reduced by over-provisioning, namely only a portion of the raw flash memory space is exposed to user space. Over-provisioning leads to higher cost.